1. Field of the Invention
This invention relates generally to intelligent backup systems and, more particularly, to methods and apparatus for intelligently backing up selected data from a host computer""s main storage drive to prevent loss of data or user productivity.
2. Description of the Related Art
In recent years, personal computers have become an integral necessity in both the work and home environment. For many people, personal computers have become their main communication system, which can be used for sending and receiving electronic mail (i.e., e-mail), transferring files over a local area network (LAN), and communicating over the world wide web via the Internet. Because people have placed such a high level of dependence on their personal computers, when a failure (i.e., crash) to either a hardware or software component occurs, the user will generally suffer greatly in terms of productivity loss.
Many times, failures to either hardware or software components can lead to the complete loss of personal data, which often cannot be recovered using standard data recovery tools. In efforts to remedy the severity of such data loss, many people perform routine backups of their entire hard drives or files. In this manner, if an unrecoverable failure were to occur, then the user would lose only the data that was created between the last backup operation and the unrecoverable failure.
Unfortunately, relying on periodic backups of a computer""s storage drives (i.e., hard drives) does not eliminate the loss in productivity suffered while the failure is being attended to, and the need to reconstruct all of the lost data that was created between the last backup and the failure. To further complicate the reconstruction process, most of today""s computer software products have to be installed using complex installation software that is designed to place each component of the software product in the correct system folder location, registry file, startup file, etc., to preserve proper functionality with the computer""s operating system. As a result, even though the entire contents of a backup can be retrieved from the backup media, the restoring of a subsequently repaired storage drive will require a substantial amount of reconstruction.
Although the restoration of failed storage devices can sometimes be a trivial process when only a minor number of programs are re-installed onto the failed computer system, most of today""s computer systems use a wide number of programs, each requiring custom installation for proper operation. Furthermore, because most computer users purchase, update, and modify computer programs over the Internet, it is often impossible to reconstruct the original state of all programs, patches, or executables that are loaded onto a computer without keeping detailed logs of where each component was acquired. As a result, when attempts to reconstruct a user""s computer system are made, many of the originally installed software programs or components may not be installed because they are no longer available or supported by the original supplier.
Notwithstanding that most failures that are a result of a hardware malfunction or a software problem can be fixed, either by complete replacement or by performing repairs, users still experience data losses that produce harsh penalties in productivity or require significant down time. That is, even if users systematically backup their system regularly, some amount of data will be lost between the time of the last backup and the subsequent restoration. In certain circumstances, even if only a small amount of data is lost, that small amount may translate into many hours of reconstruction time. Furthermore, if the lost data was a time sensitive piece of data, then reconstruction over many hours or days may not be acceptable.
In view of the foregoing, there is a need for an intelligent backup system and method for implementing the system to protect data of a computer""s storage drive in case a system failure occurs. There is also a need for a system and a method for implementing the system that will enable a user to continue working from the intelligently backed-up data after a system failure occurs, and then restore the failed system after the system failure is intelligently identified and repaired.
Broadly speaking, the present invention fills these needs by providing an intelligent backup and restore system that prevents downtime productivity losses, and assists the user in trouble shooting the failure, repairing the failure if possible, and restoring the failed system back to its pre-failure condition. All of these functionalities are provided to the user through a user friendly graphical user interface that helps the user resume his or her normal computer use by booting to a peripheral storage device (that holds an intelligently backup data set) while the failure is remedied. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for copying files from a primary drive of a computer system is disclosed. The method includes selecting files to be copied from the primary drive of the computer system to a backup drive. The selected files include operating system files and program and data files.. The method then advances to commencement of an initial copying of the selected files. The method now generates a list of non-copied files during the copying of the selected files. The list of non-copied files represent files that are locked by an operating system running on the primary drive. A shut down of the operating system is then commenced causing the operating system to shut down and release the previously locked files. Once the previously locked files are released, the method moves to copying the files identified in the list of non-copied files from the primary drive to the backup drive in order to make the backup drive a fully bootable drive.
In another embodiment, a system for copying locked system files from a first drive of a computer system to a second drive is disclosed. The method includes beginning a copying of selected files from the first drive to the second drive. Then, the method moves to detecting one or more locked files while the copying of the selected files is in progress. The locked files are such that they are prevented from being copied from the first drive to the second drive. The method then moves to where a list on non-copied files that includes the one or more locked files is generated. The generation of this list is configured to occur while the copying of the selected files is in progress. A path for the list of non-copied files is then placed in a system registry of the computer system. A shut down of the computer system is configured to shut down an operating system of the computer system before software drivers are shut down. A software driver is thus implemented to call on the list of non-copied files in the system registry. The software drive is designed to cause a copying of the one or more locked files from the first drive to the second drive before a complete shut down occurs.
In yet another embodiment, a computer readable media containing program instructions for copying locked system files from a primary drive of a computer system to a secondary drive is disclosed. The computer readable media includes program instructions for beginning a copying of selected files from the primary drive to the secondary drive. Also included are program instructions for detecting one or more locked files while the copying of the selected files is in progress. The locked files are such that they are prevented from being copied from the primary drive to the secondary drive. Program instructions for generating a list on non-copied files that includes the one or more locked files is also generated. The generating is configured to occur while the copying of the selected files is in progress. Program instructions for placing a path for the list of non-copied files in a system registry of the computer system is also provided. Program instructions for beginning a shut down of the computer system is provided to shut down an operating system of the computer system before software drivers are shut down. Then, program instructions for implementing a software driver to call on the list of non-copied files in the system registry are provided. The software drive is further configured to cause a copying of the one or more locked files from the primary drive to the secondary drive.
In still another embodiment, a method for copying files between drives of a computer system is disclosed. The method includes selecting files to be copied from a first drive of the computer system to a second drive of the computer system. The selected files include operating system files and program and data files. The method then proceeds to commencing an initial copying of the selected files. While the initial files are being copied, a list of non-copied files is generated. The list of non-copied files represent files that are locked by an operating system. A raw data copy is performed during the initial copying by referencing a FAT table of the drive from which data is copied from for each file in the list of non-copied files. A shut down of the operating system is then commenced. The operating system is configured to shut down and release the files previously locked by the operating system. A driver is then implemented to cause a copying of the files identified in the list of non-copied files from the first drive to the second drive in order to make the second drive, which is receiving the files being copied, a fully bootable and reliable backup Genesis drive.
Advantageously, the backup and restore system of the present invention is designed to intelligently protect a user""s data and productivity upon experiencing a hard disk failure. In one embodiment, once the backup and restore system is installed and set-up, the backup operations are performed in an incremental fashion (e.g., after the initial full backup, only those files that have changed from one backup to another will be backed up) to a peripheral storage device media. It should be appreciated that this incremental backup technique provides a powerful level of performance enhancement over conventional backup systems.
Another advantage is that the intelligent backup and restore system of the present invention will substantially eliminate the tremendous downtime that is typical of when a hard disk crash is experienced and no backup or simple conventional backup techniques are used. As a result, user productivity will no longer suffer when hard disk failures occur. In addition, the embodiments of the present invention also assist the user in attempting to repair of the crashed hard disk. However, if the crashed hard disk is not repairable, the system will automatically detect when a new hard disk is added to the user""s system, and then assists in partitioning and formatting the hard disk for the user. When a new hard disk is prepared or the old hard disk is repaired, the system will restore the operating system and data files to their current state as now present on the peripheral storage device media. Upon re-booting, the newly restored hard disk will once again become the boot device. Another advantage of the present invention is that the peripheral storage device media does not have to be identical to that of the system""s hard drive. More specifically, even though most computer systems implement IDE/EIDE hard drives, the peripheral storage device (that is internal or external) does not have to be an IDE/EIDE drive. Although they can be the same, they may be of any type, standard, or size other than that of the computer system. Further yet, because the peripheral storage device media may be of a different kind and size than that of the computer system, when the spare tire backup is created, a file-based copying operation is advantageously implemented.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.